#include<iostream>
#include<vector>
#include<algorithm>
#include<memory>
#include<string>
template<class t>
t abs(t value){
	return value>0?value:-value;
}
class test{
	int i;
public:
	friend bool cmp(test&r,test&l);
	friend void swap(test&,test&);
	test(int a):i(a){/* std::cout<<"int"<<std::endl; */}
	test& operator=(const test&a){i=a.i;/* std::cout<<"operator="<<std::endl; */return *this;}
	test(const test&a):i(a.i){/* std::cout<<"construct"<<std::endl; */}
	test():i(42){}
};
void swap(test &r,test &l){
	std::cout<<r.i<<' '<<l.i<<std::endl;
	std::swap(r.i,l.i);
}
bool cmp(test&r,test&l){
	return r.i<l.i;
}
int main(){
	std::allocator<std::string>allc;
	auto d=allc.allocate(2);
	std::string a="123";
	auto temp=std::uninitialized_copy(d,d+1,d);
	std::cout<<temp->size();
	
return 0;}
